package com.vision.sales.cl.data;

import java.util.Date;

import com.google.gwt.core.client.GWT;
import com.google.gwt.editor.client.Editor.Path;
import com.sencha.gxt.core.client.ValueProvider;
import com.sencha.gxt.data.shared.LabelProvider;
import com.sencha.gxt.data.shared.ModelKeyProvider;
import com.sencha.gxt.data.shared.PropertyAccess;
import com.vision.sales.cm.data.TransactionStatus;
import com.vision.sales.cm.db.data.Customer;
import com.vision.sales.cm.db.data.DeliveryReceipt;
import com.vision.sales.cm.db.data.SalesInvoice;

/**
 * 
 * @author Mark
 *
 */
public interface DeliveryReceiptProperties extends PropertyAccess<DeliveryReceipt> {
	
	public static final DeliveryReceiptProperties INSTANCE = GWT.create(DeliveryReceiptProperties.class);
	
	@Path("id")
	ModelKeyProvider<DeliveryReceipt> key();
	
	@Path("drNo")
	LabelProvider<DeliveryReceipt> nameLabel();

	ValueProvider<DeliveryReceipt, Long> id();
	ValueProvider<DeliveryReceipt, String> drNo();
	ValueProvider<DeliveryReceipt, Date> date();
	ValueProvider<DeliveryReceipt, Customer> customer();
	
	@Path("customer.code")
	ValueProvider<DeliveryReceipt, String> customerCode();
	
	@Path("customer.name")
	ValueProvider<DeliveryReceipt, String> customerName();
	
	ValueProvider<DeliveryReceipt, String> remarks();
	
	ValueProvider<DeliveryReceipt, SalesInvoice> salesInvoice();
	
	@Path("salesInvoice.invoiceNo")
	SalesInvoiceNoValueProvider<DeliveryReceipt> salesInvoiceNo();
	
	ValueProvider<DeliveryReceipt, TransactionStatus> status();
	
}